package com.ruoyi.common.file.core;

import com.obs.services.model.PutObjectResult;

import java.io.InputStream;

/**
 * ClassName：FileTemplate
 * Package：com.ruoyi.common.file.core
 * Description：存储操作模板
 *
 * @Author：fpy
 * @Create：2025/5/7 - 10:03
 * @Version：v1.0
 */
public interface FileTemplate {

    /**
     * 创建桶
     *
     * @param: bucketName
     * @return: void
     * @author: fpy
     * @date: 2025/5/7 10:15
    **/
    void createBucket(String bucketName);

    /**
     * 判断桶是否存在
     *
     * @param: bucketName
     * @return: java.lang.Boolean：true表示存在
     * @author: fpy
     * @date: 2025/5/7 10:15
    **/
    Boolean bucketExists(String bucketName);

    /**
     * 设置桶策略为公共读
     *
     * @param: bucketName
     * @return: void
     * @author: fpy
     * @date: 2025/5/7 10:15
    **/
    void setBucketPolicy(String bucketName);

    /**
     * 上传文件
     *
     * @param: bucketName
     * @param: objectKey
     * @param: input
     * @return: com.obs.services.model.PutObjectResult
     * @author: fpy
     * @date: 2025/5/7 14:19
    **/
    PutObjectResult putObject(String bucketName, String objectKey, InputStream input);
}
